package com.asset.dispoal.verdict.api;

import com.asset.dispoal.verdict.dto.request.CreateOrEditItemRequest;
import com.asset.dispoal.verdict.dto.request.CreateOrEditRequest;
import com.asset.dispoal.verdict.dto.request.JudgmentBookRequest;
import com.asset.dispoal.verdict.dto.request.JudgmentItemRequest;
import com.asset.dispoal.verdict.dto.response.JudgmentBookResponse;
import com.asset.dispoal.verdict.dto.response.JudgmentItemResponse;
import tech.mhuang.pacebox.springboot.protocol.Result;
import tech.mhuang.pacebox.springboot.protocol.data.PageVO;

/**
 * @description:
 * @author: yf
 * @date: 2022-09-06 00:42:53
 */
public interface JudgmentBookService {
    /**
     * 条件查判决书列表
     *
     * @param request
     * @return
     */
    Result<PageVO<JudgmentBookResponse>> findJudgmentBook(JudgmentBookRequest request);

    /**
     * 编辑或新增
     *
     * @param request
     * @return
     */
    Result editOrCreate(CreateOrEditRequest request);

    /**
     * 删除
     *
     * @param judgmentId
     * @return
     */
    Result deleteBookById(String judgmentId);

    /**
     * 条件列表查询
     *
     * @param request
     * @return
     */
    Result<PageVO<JudgmentItemResponse>> queryJudgmentById(JudgmentItemRequest request);

    /**
     * 根据提取项目id获取详情
     *
     * @param itemId
     * @return
     */
    Result<JudgmentItemResponse> queryItemById(String itemId);

    /**
     * 新增判决书项目表以及详情
     *
     * @param request
     * @return
     */
    Result createOrEditBookItem(CreateOrEditItemRequest request);

    /**
     * 根据项目id删除
     *
     * @param itemId
     * @return
     */
    Result deleteItemById(String itemId);

    /**
     * 根据判决书id获取提取请求参数
     *
     * @param bookId
     * @return
     */
    Result getExtractParam(String bookId);
}
